/*
 * XML Type:  StatementResponse
 * Namespace: http://ofx.net/types/2003/04
 * Java type: net.ofx.types.x2003.x04.StatementResponse
 *
 * Automatically generated - do not modify.
 */
package net.ofx.types.x2003.x04.impl;
/**
 * An XML StatementResponse(@http://ofx.net/types/2003/04).
 *
 * This is a complex type.
 */
public class StatementResponseImpl extends org.apache.xmlbeans.impl.values.XmlComplexContentImpl implements net.ofx.types.x2003.x04.StatementResponse
{
    
    public StatementResponseImpl(org.apache.xmlbeans.SchemaType sType)
    {
        super(sType);
    }
    
    private static final javax.xml.namespace.QName CURDEF$0 = 
        new javax.xml.namespace.QName("", "CURDEF");
    private static final javax.xml.namespace.QName BANKACCTFROM$2 = 
        new javax.xml.namespace.QName("", "BANKACCTFROM");
    private static final javax.xml.namespace.QName BANKTRANLIST$4 = 
        new javax.xml.namespace.QName("", "BANKTRANLIST");
    private static final javax.xml.namespace.QName LEDGERBAL$6 = 
        new javax.xml.namespace.QName("", "LEDGERBAL");
    private static final javax.xml.namespace.QName AVAILBAL$8 = 
        new javax.xml.namespace.QName("", "AVAILBAL");
    private static final javax.xml.namespace.QName BALLIST$10 = 
        new javax.xml.namespace.QName("", "BALLIST");
    private static final javax.xml.namespace.QName MKTGINFO$12 = 
        new javax.xml.namespace.QName("", "MKTGINFO");
    
    
    /**
     * Gets the "CURDEF" element
     */
    public net.ofx.types.x2003.x04.CurrencyEnum.Enum getCURDEF()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(CURDEF$0, 0);
            if (target == null)
            {
                return null;
            }
            return (net.ofx.types.x2003.x04.CurrencyEnum.Enum)target.getEnumValue();
        }
    }
    
    /**
     * Gets (as xml) the "CURDEF" element
     */
    public net.ofx.types.x2003.x04.CurrencyEnum xgetCURDEF()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.CurrencyEnum target = null;
            target = (net.ofx.types.x2003.x04.CurrencyEnum)get_store().find_element_user(CURDEF$0, 0);
            return target;
        }
    }
    
    /**
     * Sets the "CURDEF" element
     */
    public void setCURDEF(net.ofx.types.x2003.x04.CurrencyEnum.Enum curdef)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(CURDEF$0, 0);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_element_user(CURDEF$0);
            }
            target.setEnumValue(curdef);
        }
    }
    
    /**
     * Sets (as xml) the "CURDEF" element
     */
    public void xsetCURDEF(net.ofx.types.x2003.x04.CurrencyEnum curdef)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.CurrencyEnum target = null;
            target = (net.ofx.types.x2003.x04.CurrencyEnum)get_store().find_element_user(CURDEF$0, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.CurrencyEnum)get_store().add_element_user(CURDEF$0);
            }
            target.set(curdef);
        }
    }
    
    /**
     * Gets the "BANKACCTFROM" element
     */
    public net.ofx.types.x2003.x04.BankAccount getBANKACCTFROM()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.BankAccount target = null;
            target = (net.ofx.types.x2003.x04.BankAccount)get_store().find_element_user(BANKACCTFROM$2, 0);
            if (target == null)
            {
                return null;
            }
            return target;
        }
    }
    
    /**
     * Sets the "BANKACCTFROM" element
     */
    public void setBANKACCTFROM(net.ofx.types.x2003.x04.BankAccount bankacctfrom)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.BankAccount target = null;
            target = (net.ofx.types.x2003.x04.BankAccount)get_store().find_element_user(BANKACCTFROM$2, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.BankAccount)get_store().add_element_user(BANKACCTFROM$2);
            }
            target.set(bankacctfrom);
        }
    }
    
    /**
     * Appends and returns a new empty "BANKACCTFROM" element
     */
    public net.ofx.types.x2003.x04.BankAccount addNewBANKACCTFROM()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.BankAccount target = null;
            target = (net.ofx.types.x2003.x04.BankAccount)get_store().add_element_user(BANKACCTFROM$2);
            return target;
        }
    }
    
    /**
     * Gets the "BANKTRANLIST" element
     */
    public net.ofx.types.x2003.x04.BankTransactionList getBANKTRANLIST()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.BankTransactionList target = null;
            target = (net.ofx.types.x2003.x04.BankTransactionList)get_store().find_element_user(BANKTRANLIST$4, 0);
            if (target == null)
            {
                return null;
            }
            return target;
        }
    }
    
    /**
     * True if has "BANKTRANLIST" element
     */
    public boolean isSetBANKTRANLIST()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(BANKTRANLIST$4) != 0;
        }
    }
    
    /**
     * Sets the "BANKTRANLIST" element
     */
    public void setBANKTRANLIST(net.ofx.types.x2003.x04.BankTransactionList banktranlist)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.BankTransactionList target = null;
            target = (net.ofx.types.x2003.x04.BankTransactionList)get_store().find_element_user(BANKTRANLIST$4, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.BankTransactionList)get_store().add_element_user(BANKTRANLIST$4);
            }
            target.set(banktranlist);
        }
    }
    
    /**
     * Appends and returns a new empty "BANKTRANLIST" element
     */
    public net.ofx.types.x2003.x04.BankTransactionList addNewBANKTRANLIST()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.BankTransactionList target = null;
            target = (net.ofx.types.x2003.x04.BankTransactionList)get_store().add_element_user(BANKTRANLIST$4);
            return target;
        }
    }
    
    /**
     * Unsets the "BANKTRANLIST" element
     */
    public void unsetBANKTRANLIST()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(BANKTRANLIST$4, 0);
        }
    }
    
    /**
     * Gets the "LEDGERBAL" element
     */
    public net.ofx.types.x2003.x04.LedgerBalance getLEDGERBAL()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.LedgerBalance target = null;
            target = (net.ofx.types.x2003.x04.LedgerBalance)get_store().find_element_user(LEDGERBAL$6, 0);
            if (target == null)
            {
                return null;
            }
            return target;
        }
    }
    
    /**
     * Sets the "LEDGERBAL" element
     */
    public void setLEDGERBAL(net.ofx.types.x2003.x04.LedgerBalance ledgerbal)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.LedgerBalance target = null;
            target = (net.ofx.types.x2003.x04.LedgerBalance)get_store().find_element_user(LEDGERBAL$6, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.LedgerBalance)get_store().add_element_user(LEDGERBAL$6);
            }
            target.set(ledgerbal);
        }
    }
    
    /**
     * Appends and returns a new empty "LEDGERBAL" element
     */
    public net.ofx.types.x2003.x04.LedgerBalance addNewLEDGERBAL()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.LedgerBalance target = null;
            target = (net.ofx.types.x2003.x04.LedgerBalance)get_store().add_element_user(LEDGERBAL$6);
            return target;
        }
    }
    
    /**
     * Gets the "AVAILBAL" element
     */
    public net.ofx.types.x2003.x04.AvailableBalance getAVAILBAL()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.AvailableBalance target = null;
            target = (net.ofx.types.x2003.x04.AvailableBalance)get_store().find_element_user(AVAILBAL$8, 0);
            if (target == null)
            {
                return null;
            }
            return target;
        }
    }
    
    /**
     * True if has "AVAILBAL" element
     */
    public boolean isSetAVAILBAL()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(AVAILBAL$8) != 0;
        }
    }
    
    /**
     * Sets the "AVAILBAL" element
     */
    public void setAVAILBAL(net.ofx.types.x2003.x04.AvailableBalance availbal)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.AvailableBalance target = null;
            target = (net.ofx.types.x2003.x04.AvailableBalance)get_store().find_element_user(AVAILBAL$8, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.AvailableBalance)get_store().add_element_user(AVAILBAL$8);
            }
            target.set(availbal);
        }
    }
    
    /**
     * Appends and returns a new empty "AVAILBAL" element
     */
    public net.ofx.types.x2003.x04.AvailableBalance addNewAVAILBAL()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.AvailableBalance target = null;
            target = (net.ofx.types.x2003.x04.AvailableBalance)get_store().add_element_user(AVAILBAL$8);
            return target;
        }
    }
    
    /**
     * Unsets the "AVAILBAL" element
     */
    public void unsetAVAILBAL()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(AVAILBAL$8, 0);
        }
    }
    
    /**
     * Gets the "BALLIST" element
     */
    public net.ofx.types.x2003.x04.BalanceList getBALLIST()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.BalanceList target = null;
            target = (net.ofx.types.x2003.x04.BalanceList)get_store().find_element_user(BALLIST$10, 0);
            if (target == null)
            {
                return null;
            }
            return target;
        }
    }
    
    /**
     * True if has "BALLIST" element
     */
    public boolean isSetBALLIST()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(BALLIST$10) != 0;
        }
    }
    
    /**
     * Sets the "BALLIST" element
     */
    public void setBALLIST(net.ofx.types.x2003.x04.BalanceList ballist)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.BalanceList target = null;
            target = (net.ofx.types.x2003.x04.BalanceList)get_store().find_element_user(BALLIST$10, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.BalanceList)get_store().add_element_user(BALLIST$10);
            }
            target.set(ballist);
        }
    }
    
    /**
     * Appends and returns a new empty "BALLIST" element
     */
    public net.ofx.types.x2003.x04.BalanceList addNewBALLIST()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.BalanceList target = null;
            target = (net.ofx.types.x2003.x04.BalanceList)get_store().add_element_user(BALLIST$10);
            return target;
        }
    }
    
    /**
     * Unsets the "BALLIST" element
     */
    public void unsetBALLIST()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(BALLIST$10, 0);
        }
    }
    
    /**
     * Gets the "MKTGINFO" element
     */
    public java.lang.String getMKTGINFO()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(MKTGINFO$12, 0);
            if (target == null)
            {
                return null;
            }
            return target.getStringValue();
        }
    }
    
    /**
     * Gets (as xml) the "MKTGINFO" element
     */
    public net.ofx.types.x2003.x04.InfoType xgetMKTGINFO()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.InfoType target = null;
            target = (net.ofx.types.x2003.x04.InfoType)get_store().find_element_user(MKTGINFO$12, 0);
            return target;
        }
    }
    
    /**
     * True if has "MKTGINFO" element
     */
    public boolean isSetMKTGINFO()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(MKTGINFO$12) != 0;
        }
    }
    
    /**
     * Sets the "MKTGINFO" element
     */
    public void setMKTGINFO(java.lang.String mktginfo)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(MKTGINFO$12, 0);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_element_user(MKTGINFO$12);
            }
            target.setStringValue(mktginfo);
        }
    }
    
    /**
     * Sets (as xml) the "MKTGINFO" element
     */
    public void xsetMKTGINFO(net.ofx.types.x2003.x04.InfoType mktginfo)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.InfoType target = null;
            target = (net.ofx.types.x2003.x04.InfoType)get_store().find_element_user(MKTGINFO$12, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.InfoType)get_store().add_element_user(MKTGINFO$12);
            }
            target.set(mktginfo);
        }
    }
    
    /**
     * Unsets the "MKTGINFO" element
     */
    public void unsetMKTGINFO()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(MKTGINFO$12, 0);
        }
    }
}
